Enterprise software systems are typically sophisticated, large-scale systems that support many, e.g., hundreds or thousands, of concurrent users. Examples of enterprise software systems include financial planning systems, budget planning systems, order management systems, inventory management systems, sales force management systems, business intelligence tools, enterprise reporting tools, project and resource management systems, and other enterprise software systems.
Many enterprise performance management and business planning applications require a large base of users to enter data that the software then accumulates into higher level areas of responsibility in the organization. Moreover, once data has been entered, it must be retrieved to be utilized. The system may perform mathematical calculations on the data, combining data submitted by one user with data submitted by other users. Using the results of these calculations, the system may generate reports for review by higher management. Often these complex systems make use of data stores such as relational databases and multidimensional data structures referred to herein as data cubes.
Reporting and analysis end user products (typically referred to as Business Intelligence, or BI, tools) allow users to author reports and perform data exploration and analysis on a myriad of data sources including, primarily, relational and multi-dimensional databases, as well as flat files, Extensible Markup Language (“XML”) data, data streams, and unorganized text and data. Executing an individual report or analysis by BI tools may include parsing and planning the query and then executing the query on the underlying data source, retrieving data from the underlying data source in response to the query, and returning the data to the BI tools. The BI tools may include an Online Analytical Processing (OLAP) interface for querying the multi-dimensional cubes.
BI tools may be accessed through different interfaces, such as a mashup environment or a software development kit (SDK), for example. A mashup environment may enable a relatively simpler and more streamlined interface, while an SDK may enable a larger set of functionality and flexibility, which may be more suitable for client developers to perform tasks such as developing sophisticated automation or developing integration of the BI tools with external or custom software. The SDK may be accompanied by documentation for client developers to gain understanding of the SDK and how to use its features to make full use of the BI tools.